var express = require("express");
var app = express();
var db = require("./model/db.js");
var formidable = require("formidable");
var ObjectId = require("mongodb").ObjectID;

app.set("view engine","ejs");            // 模板引擎

app.use(express.static("./public"));     // 静态文件

app.get("/",function(req,res,next){      // 留言列表
    db.getAllCount("messageBoard",function(count){      // 获取到数据的总数量
        res.render("index",{
            "pageamount" : Math.ceil(count / 4)
        });
    });
});

app.get("/read",function(req,res,next){  // 读取留言内容
    var page = parseInt(req.query.page);
    db.find("messageBoard",{},{"sort":{"Time":-1},"pageamount":4,"page":page},function(err,result){
        res.json({"result":result});
    })
})

app.post("/Submit",function(req,res,next){    // 处理留言
    var form = new formidable.IncomingForm();
    form.parse(req,function(err,fields){
        db.insertOne("messageBoard",{
            "Name" : fields.Name,
            "mess" : fields.mess,
            "Time" : new Date()
        },function(err,result){
            if(err){
                res.json({"result":-1});     // 返回写入数据库的结果，给Ajax看的
                return;
            } 
            res.json({"result":1});
        })
    })
});

app.get("/delete",function(req,res,next){       // 删除数据
    var id = req.query.id;
    db.deleteMany("messageBoard",{"_id":ObjectId(id)},function(err,result){     // id是字符串，所以要转 
        res.redirect("/");          // 删除成功后重定向
    })
})

app.listen(3000);